package com.chushouya.manager.service.admin;


import com.chushouya.manager.dto.admin.login.AdminUserAuthDTO;
import com.chushouya.manager.dto.admin.login.LoginUser;

public interface AdminTokenService {

    /**
     * 创建令牌
     * @param loginUser 用户信息
     * @return 令牌
     */
    String createToken(LoginUser loginUser);

    /**
     * 获取用户身份信息
     * @return 用户信息
     */
    LoginUser getLoginUser(String token);

    AdminUserAuthDTO authToken(String token);

    /**
     * 清除用户登录信息(按token)
     */
    void delLoginToken(String token);

    /**
     * 清除用户登录信息(按用户)
     */
    void delLoginToken(Long adminUserId);

    /**
     * 验证令牌有效期，相差不足20分钟，自动刷新缓存
     * @param loginUser 用户信息
     */
    void verifyToken(LoginUser loginUser);

    /**
     * 刷新令牌有效期
     * @param loginUser 登录信息
     */
    void refreshToken(LoginUser loginUser);

}
